package com.gs.djys.main;

import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.alibaba.fastjson.JSON;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;
import com.github.mikephil.charting.formatter.IValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;
import com.github.mikephil.charting.utils.ViewPortHandler;
import com.gs.djys.Base.MyAppliCation;
import com.gs.djys.R;
import com.gs.djys.Util.Utils;

import java.util.ArrayList;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

public class MTwoFragment extends Fragment {


    @Bind(R.id.bar_chart2)
    BarChart barChart;
    @Bind(R.id.text)
    TextView text;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fra_m, container, false);
        ButterKnife.bind(this, view);
        if (!Utils.isNull(MyAppliCation.spUtils.getString("data"))) {
            MainBean mainBean = JSON.parseObject(MyAppliCation.spUtils.getString("data"), MainBean.class);
            text.setText(mainBean.getData().getRecords().get(1).getTitle());
            barChart.getDescription().setEnabled(false); // 不显示描述
            barChart.getLegend().setEnabled(false); // 不显示图例
            barChart.setExtraOffsets(20, 20, 20, 20); // 设置饼图的偏移量，类似于内边距 ，设置视图窗口大小
            // 设置x轴
            XAxis xAxis = barChart.getXAxis();
            xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);  // 设置x轴显示在下方，默认在上方
            xAxis.setDrawGridLines(false); // 将此设置为true，绘制该轴的网格线。
            xAxis.setLabelCount(5);  // 设置x轴上的标签个数
            xAxis.setTextSize(10f); // x轴上标签的大小
            final String labelName[] = {"申请", "受理", "准予许可", "不予许可", "企业撤销"};
            // 设置x轴显示的值的格式
            xAxis.setValueFormatter(new IAxisValueFormatter() {
                @Override
                public String getFormattedValue(float value, AxisBase axis) {
                    if ((int) value < labelName.length) {
                        return labelName[(int) value];
                    } else {
                        return "";
                    }
                }
            });
            xAxis.setYOffset(15); // 设置标签对x轴的偏移量，垂直方向

            // 设置y轴，y轴有两条，分别为左和右
            YAxis yAxis_right = barChart.getAxisRight();
            yAxis_right.setAxisMaximum(1500f);  // 设置y轴的最大值
            yAxis_right.setAxisMinimum(0f);  // 设置y轴的最小值
            yAxis_right.setEnabled(false);  // 不显示右边的y轴

            YAxis yAxis_left = barChart.getAxisLeft();
//            yAxis_left.setAxisMaximum(50000f);
            yAxis_left.setAxisMinimum(0f);
            yAxis_left.setTextSize(10f); // 设置y轴的标签大小

            List<IBarDataSet> sets = new ArrayList<>();
            // 此处有两个DataSet，所以有两条柱子，BarEntry（）中的x和y分别表示显示的位置和高度
            // x是横坐标，表示位置，y是纵坐标，表示高度
            List<BarEntry> barEntries1 = new ArrayList<>();
            barEntries1.add(new BarEntry(0, (float) mainBean.getData().getRecords().get(1).get申请()));
            barEntries1.add(new BarEntry(1, (float) mainBean.getData().getRecords().get(1).get受理()));
            barEntries1.add(new BarEntry(2, (float) mainBean.getData().getRecords().get(1).get准予许可()));
            barEntries1.add(new BarEntry(3, (float) mainBean.getData().getRecords().get(1).get不予许可()));
            barEntries1.add(new BarEntry(4, (float) mainBean.getData().getRecords().get(1).get企业撤销()));
            BarDataSet barDataSet1 = new BarDataSet(barEntries1, "");
            barDataSet1.setColors(getResources().getColor(R.color.tb1),
                    getResources().getColor(R.color.tb2), getResources().getColor(R.color.tb3),
                    getResources().getColor(R.color.tb4), getResources().getColor(R.color.tb5));
//        barDataSet1.setColors(Color.GREEN, Color.BLUE, Color.RED);
            barDataSet1.setValueTextColor(Color.BLACK); // 值的颜色
            barDataSet1.setValueTextSize(15f); // 值的大小
//        barDataSet1.setColor(Color.parseColor("#1AE61A")); // 柱子的颜色

            // 设置柱子上数据显示的格式
            barDataSet1.setValueFormatter(new IValueFormatter() {
                @Override
                public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
                    // 此处的value默认保存一位小数
                    int n = (int) value;
                    return n + "件";
                }
            });

            sets.add(barDataSet1);


            BarData barData = new BarData(sets);
            barData.setBarWidth(0.3f); // 设置柱子的宽度
            barChart.setData(barData);
            barChart.invalidate();
        }
        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.unbind(this);
    }
}